﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados_.DigitalTVDSTableAdapters;

namespace Dados_
{
    public class ProgramacaoSQL:IProgramacaoBD
    {
        public int Inserir(ProgramacaoVO programacaovo)
        {
            T_ProgramacaoTableAdapter prog = new T_ProgramacaoTableAdapter();
            return prog.Insert(programacaovo.IdCanal, programacaovo.IdEpisodio, programacaovo.DataHora);
        }

        public int Excluir(ProgramacaoVO programacaovo)
        {
            T_ProgramacaoTableAdapter prog = new T_ProgramacaoTableAdapter();
            return prog.Delete(programacaovo.Id_programacao);
        }

        public ProgramacaoVO Consultar(int IDProgramacao)
        {
            ProgramacaoVO progvo = new ProgramacaoVO(); 
            T_ProgramacaoTableAdapter prog = new T_ProgramacaoTableAdapter();
            DigitalTVDS.T_ProgramacaoDataTable digitv = prog.GetProgramacaoPorId(IDProgramacao);
            progvo.Id_programacao = digitv[0].id_programacao;
            progvo.IdCanal = digitv[0].nr_canal;
            progvo.IdEpisodio = digitv[0].nr_episodio;
            return progvo;
        }

        public List<ProgramacaoVO> getProgramacao(int idCanal)
        {
            List<ProgramacaoVO> lista = new List<ProgramacaoVO>();
            T_ProgramacaoTableAdapter t = new T_ProgramacaoTableAdapter();
            DigitalTVDS.T_ProgramacaoDataTable prog = t.getProgramacaoPorCanalTable(idCanal);
            foreach (DigitalTVDS.T_ProgramacaoRow row in prog)
            {
                ProgramacaoVO vo = new ProgramacaoVO();
                vo.IdCanal = row.nr_canal;
                vo.Id_programacao = row.id_programacao;
                vo.DataHora = row.dt_data;
                vo.IdEpisodio = row.nr_episodio;
                lista.Add(vo);
                vo = null;
            }

            return lista;
        }

        public EpisodiosVO getEpisodio(int idEpisodio)
        {
            List<EpisodiosVO> lista = new List<EpisodiosVO>();
            T_EpisodiosTableAdapter t = new T_EpisodiosTableAdapter();
            DigitalTVDS.T_EpisodiosDataTable prog = t.GetEpisodioPorId(idEpisodio);
            EpisodiosVO vo = new EpisodiosVO();
            vo.Id = prog[0].nr_id;
            vo.Idprograma = prog[0].nr_programa;
            vo.Sinopse = prog[0].tx_sinopse;
            return vo;
        }
    }
}
